/**
 * @description 获取当前时间对应的提示语
 * @return string
 */
export function getTimeState() {
	// 获取当前时间
	let timeNow = new Date();
	// 获取当前小时
	let hours = timeNow.getHours();
	// 判断当前时间段
	if (hours >= 6 && hours <= 10) return `早上好 ⛅`;
	if (hours >= 10 && hours <= 14) return `中午好 🌞`;
	if (hours >= 14 && hours <= 18) return `下午好 🌞`;
	if (hours >= 18 && hours <= 24) return `晚上好 🌛`;
	if (hours >= 0 && hours <= 6) return `凌晨好 🌛`;
}

/**
 * @description 判断数据类型
 * @param {Any} val 需要判断类型的数据
 * @return string
 */
export function isType(val: any) {
	if (val === null) return "null";
	if (typeof val !== "object") return typeof val;
	else return Object.prototype.toString.call(val).slice(8, -1).toLocaleLowerCase();
}
export const generateId = function () {
	return Math.floor(Math.random() * 100000 + Math.random() * 20000 + Math.random() * 5000);
};
/**
 * 深拷贝
 * @param obj 
 * @returns 
 */
export const deepCopy = function (obj) {
	if (typeof obj === 'function') {
		throw new TypeError('请传入正确的数据类型格式')
	}
	try {
		let data = JSON.stringify(obj)
		let newData = JSON.parse(data)
		return newData
	} catch (e) {
	}
}
/**
 * 对象首字母转大写
 * @param obj 
 * @returns 
 */
export const capitalizeKeys = (obj: any) => {
	if (typeof obj !== 'object') {
		return obj; // 如果不是对象，则直接返回
	}

	// 创建一个新对象，用于存储转换后的键值对
	const newObj: any = {};

	// 遍历对象的所有键值对
	for (let key in obj) {
		if (obj.hasOwnProperty(key)) {
			const capitalizedKey = key.charAt(0).toUpperCase() + key.slice(1);
			newObj[capitalizedKey] = obj[key];
		}
	}

	return newObj;
};
/**
 * 对象字母转大写
 * @param obj 
 * @returns 
 */
export const lowKeys = (obj: any) => {
	if (typeof obj !== 'object') {
		return obj; // 如果不是对象，则直接返回
	}

	// 创建一个新对象，用于存储转换后的键值对
	const newObj: any = {};

	// 遍历对象的所有键值对
	for (let key in obj) {
		if (obj.hasOwnProperty(key)) {
			const capitalizedKey = key.charAt(0).toLowerCase() + key.slice(1);
			newObj[capitalizedKey] = obj[key];
		}
	}

	return newObj;
};